package com.mine.springmvc.run;

/*
* 函数式接口是学习Java8 lambda表达式的关键所在
*
* 函数式接口的定义
*  任何接口，如果只包含唯一一个抽象方法，那么他就是一个函数式接口
*
* 对于函数式接口，我们可以通过lambda表达式来创建改接口的对象
*
*
*
* */
public class TestLambda2 {

    public static void main(String[] args) {
        //匿名内部类
        ILove love = new ILove() {
            @Override
            public void love(int a) {
                System.out.println("i love you -->"+a);
            }
        };

        love.love(2);
        //带参数
        love = (int a)->{
          System.out.println("i love you -->"+a);
        };
        // 简化参数类型(a，b)两个参数
        love = (a)->{
            System.out.println("i love you -->"+a);
        };
        love.love(521);

        //简化括号（有局限，只能一个参数）
        love = a->{
            System.out.println("i love you -->"+a);
        };

        //去掉或括号(有局限，代码只有一行)
        love = a-> System.out.println("i love you -->"+a);
        love.love(523);



    }
}

//定义一个接口
interface ILove{

    void love(int a);
}

